查看原文
其他

面试大数据分析师,你需要掌握的基础技术栈。

金麟 大数据与人工智能 2019-10-31

写在前面

本文主要面向的读者是在校计算机/软件相关专业想踏足大数据领域寻找相关实习机会的学生,以及刚工作1-2年想转大数据方向的同学。



读完本文,你将收获大数据技术学习的基本方向,以及在面试前需要准备和复习的常见面试题。



正文:


在数据时代的今天,大数据行业是最热门的行业之一。在大数据行业中,大数据分析师是需求量最大的岗位,很多高校也都专门开设了大数据专业,培养数据分析方面的人才。

 

今天我们就这个话题,结合笔者多年的面试官经历,来聊一聊,如果面试大数据分析师岗位(初、中级),需要掌握哪些基本的技术技能

 

在日常的工作中,大数据分析师的核心工作内容便是从大量数据中,通过数据处理、统计分析和算法挖掘等技术手段,将数据转换成有效的信息,从而进一步转化为知识并内化为智慧。


因此,涉及的技术会非常广泛,这取决于具体的业务需求和公司技术架构。本文我们着重介绍大部分公司常用的技术,也是面试中最容易被问到的技术。


下图为互联网公司常见的大数据技术栈:

图 1.互联网公司常见大数据技术栈


上图中,绿色的部分为面试中经常被问到的基础技术,黄色部分为加分项,蓝色部分通常不会直接用到,但是也需要有一定的了解。


本文主要围绕绿色的部分,讲解下这些技术的应用场景、解决的问题及面试中需要掌握的基础内容。根据其功能性和应用场景不同,可以进行以下分类。


图2.大数据基础技术栈


大数据分析师的日常工作流程大致如下:


1.设计定义要收集的数据,并由数据收集系统完成收集;

2.完成数据的预处理,将数据转化为结构化的数据;

3.根据业务需求,对数据进行离线SQL分析或者实时分析得到相应的结果信息;

4.将上述结果信息通过数据可视化工具呈现出来,通过对比分析其趋势或差异,推导出相应的结论。


相信聪明的同学已经看出来了,图2中罗列的技术便是从数据分析工作的每个环节中,选择了一个典型代表。笔者结合多年来的面试经历,以及工作中实际使用经验,来一一做下简单介绍。


数据存储


从存储的数据的内容来看,数据存储分为离线文件存储和结构化结果数据存储,其中离线文件存储,主要解决的问题是存储大量的数据,常用的技术是HDFS;而结构化结果数据存储,主要目标是方便存取和修改,常用的技术是MySQL和Hbase。


HDFS


大数据最基础的组件之一,其核心功能是存储海量的数据,存储方式为文件。对于初级分析师来说,只需要掌握其运行的基本原理,熟悉常用的命令行指令即可,常见面试题如下:

1.  HDFS正常启动后主要有哪些进程在运行,其作用分别是什么

2.  HA主要由什么进程负责,其工作原理是什么

3.  两个NameNode间如何完成数据同步

4.  客户端上传数据的流程是什么

5.  常用的查看、删除、上传、下载和查看active节点的命令是什么


MySQL


MySQL是最流行也是久经考验的关系型数据库,早在大数据技术崛起之前就已经广泛使用。准确来说,其并不算大数据技术之一。


MySQL在技术栈中的主要作用是存储大数据分析后产出的结果数据,因此熟练掌握MySQL也是必备技能之一。日常的工作应用场景主要是对MySQL进行存取数据操作,因此需要掌握的主要内容是数据表设计、数据的存取、查询SQL等。


核心面试题如下:

1.  表设计时的注意事项或技巧

2.  索引的类型和作用

3.  常见的SQL优化技巧

4.  主从同步的基本原理流程

5.  常用的SQL函数有哪些


Hbase


MySQL属于单机版应用,不适合存储大量的数据,当需要存储大量数据且要方便存取修改的场景出现时,属于NoSQL阵营的Hbase就需要出来扛大旗了。


Hbase的主要特点是面向列设计的KV存储,在日常工作中,对Hbase的使用也主要是表设计和存取操作,核心的面试题如下:

1.  hbase和mysql的主要区别是什么

2.  rowkey的设计原则是什么

3.  举一个之前设计rowkey的实际场景案例

4.  zookeeper在hbase集群中的主要作用是

5.  常用的hbase指令有哪些


数据分析


数据分析一般分为离线分析和实时分析。由于现在多数公司都构建了自己的数据仓库体系,因此多数离线分析都是通过SQL完成的,常用的框架为Hive和SparkSQL,少部分会使用MapReduce和SparkCore通过编写代码实现。而对于实时数据分析,市面上的框架较多,其中StructedStreaming相对容易上手些。


关键技能面试题如下:

1.  hive内部表和外部表的区别

2.  hive导入导出数据的几种方式

3.  hive自定义函数(UDF)的开发和部署流程?如何创建永久函数

4.  常用的hive窗口函数,并举出一个实例

5.  sparksql如何连接hive的元数据

6.  spark中宽窄依赖的含义及区别,举几个算子的例子

7.  数据倾斜常见的几种形式及解决方案

8.  如何理解structured streaming的无限增长表

9.  如何理解structured streaming基于事件时间的窗口操作

10.  structured streaming不支持的操作有哪些


消息中间件


消息中间件是系统中各应用程序通信的关键通道,其主要作用为应用间解耦、异步操作、削掉高峰、提供缓冲、实时数据传输等。Kafka是最常用的大数据消息队列,通常都会使用它实现实时数据流的接入,其核心面试题如下:

1.  kafka的核心基础概念,consumer、consumerGroup、topic、partition、replication等的含义

2.  kafka高效文件存储设计的特点

3.  kafka消息接收的三种模式是什么

4.  常用kafka命令行指令有哪些


资源管理调度


为了提升分布式集群的资源利用率,通常都会使用资源管理调度框架来对计算资源(如CPU、内存、磁盘、网络等)进行统一管理、分配和调度。hadoop生态,最常用的框架为YARN。对于大数据分析师来说,YARN工作在底层,很少会去直接用到它,但是了解其基本原理对理解计算过程、排查问题,很有帮助。其需要了解的面试题如下:

1.  yarn作业两种提交模式的区别

2.  如何查看提交到yarn上的作业的日志

3.  如何杀死一个正在执行的yarn作业


数据可视化


统计分析的结果是由一组数字组成的数据,往往并不直观,因此需要借助可视化工具,将其以图形化的方式呈现出来,这样更容易找出藏在数据间的规律。这类工具有很多,有些公司会基于echarts、highcharts等自主研发可视化工具,也有大厂开放出来的工具,如阿里的datav、百度的sugar,还有一些商用收费软件,如国外的tableau。


数据可视化的技术难度并不大,通常面试时会问一下之前可视化的经验。tableau面向高校学生和老师提供的免费的tableau激活码,学生证书的使用有效期为一年。学生可以申请试用,跟着教程自己尝试做几个可视化报表,面试时绝对是个加分项。

 


结语:


本文只是初步整理了一些面试技术问题,旨在给未入门或刚入门的同学提供一个学习的方向。


虽然这些问题很容易找到答案,通过刷题和背答案可以很快掌握这些面试题,顺利过关。但是笔者还是希望大家在打基础的阶段尽量多下功夫,打好基本功,带着这些问题去学习,效果会事半功倍。


当然面试前复习下是无可厚非的,如果大家感兴趣可以在留言区留言,我会考虑针对基础核心技术结合在公司长年的面试经验,再整理一个面试题的解题合集(问题+答案+分析过程)。


还能看点啥?


 

戳戳戳!!!

1.互联网从业人必须知道的「用户行为数据收集系统」

2.新晋“小白”眼中的大数据世界

3.大数据营销之用户画像

4.机器学习中的维度灾难

5.推荐系统的商业价值


 

更多精彩内容

长按扫码可关注

感谢阅读,码字不易,顺手点个“好看”吧👇 

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存